package com.huitone.gddw.service.system;

import java.util.List;

import com.huitone.gddw.dao.entity.Dept;
import com.huitone.gddw.model.support.QueryPage;
import com.huitone.gddw.service.dto.system.DeptDTO;

/**
 * 组织单位管理 接口
 * @author wuluodan
 *
 */
public interface IDeptService {

	/**
	 * 分页查询
	 * @param page QueryPage
	 * @return QueryPage
	 */
	QueryPage<DeptDTO> selectPage(QueryPage<Dept> page);
	
	/**
	 * 根据单位ID获取记录
	 * @param deptId 单位ID
	 * @return Dept
	 */
	Dept getById(String deptId);
	
	/**
	 * 获取所有组织单位
	 * @return List
	 */
	List<Dept> getAll();
	
	/**
	 * 根据父单位ID获取记录
	 * @param parentId 父单位ID
	 * @return
	 */
	List<Dept> getByParentId(String parentId);
	
	/**
	 * 根据单位水平获取所有上一级单位
	 * @param deptLevel 单位水平
	 * @return List
	 */
	List<Dept> getUpLevelDept(String deptLevel);
	
	/**
	 * 根据主键获取修改页面数据
	 * @param deptId 单位ID
	 * @return DeptDTO
	 */
	DeptDTO toUpdate(String deptId);
	
	/**
	 * 保存
	 * @param deptDTO DeptDTO
	 */
	void save(DeptDTO deptDTO);
	
	/**
	 * 更新
	 * @param deptDTO DeptDTO
	 */
	void update(DeptDTO deptDTO);
	
	/**
	 * 删除
	 * @param deptId 单位ID
	 */
	void delete(String deptId);
	
	/**
	 * 设置业务端
	 * @param deptId 单位ID
	 * @param svrNodes 多个业务端ID
	 */
	void changeDeptSvrNodes(String deptId, String svrNodes);
	
	/**
	 * 根据单位名称查询所有单位
	 * @param deptName 单位名称
	 * @return List<Dept>
	 */
	List<Dept> getByName(String deptName);
	
}
